It is known, that robots can be used in industrial applications, such as pick and place, machine tending and palletizing. Several robots can be working together along a common production line, where each robot can perform a certain production step. The overall control of those robots can by realized by a system, which can be based on a programmable logic controller (PLC). The programmable logic controller can coordinate the triggering of the working sequences of the different robots dependent, for example, on the position of a conveyor system, where a workpiece to be assembled can be transported along the different working positions of the robots. The programming of a PLC can be standardized in a wider manner, for example by IEC 61131, so a person who is skilled in PLC programming can be able to operate a wide range of different PLC controlled production lines concerning this issue. Furthermore, the description of the PLCOpen programming standard provides information about PLC programming, which can be known.
A robot can include a robot manipulator with several degrees of freedom in movement, for example, six or seven, whereas at the end of the robot manipulator, an end effector like a gripper or another tool like a welding gun, for example. A robot manipulator with at least six degrees of freedom in movement can be able to position a belonging tool within each coordinate of its working range in each orientation. Thus, a coordinate along a movement path of the robot tool can include six values, three for the belonging coordinate and three for the belonging orientation. The working range of a robot can depend on the robot can be, for example, within a radius of 1 m to 3 m around the belonging robot base.
Kinematic mechanisms with less degree of freedom in movement such as a machine tool with only two degrees of freedom in movement can be seen as a robot within this disclosure.
The movement of the robot can be controlled by a dedicated robot controller, which includes on the one side a computer system and on the other side several amplifiers for the belonging drives of the robot. Each degree of freedom in movement can include a dedicated drive such as an electrical motor. The desired movement of the robot can be contained within a robot program, which can be stored on the computer system of the robot controller. The movement path can be composed by a sequence of movement sections between given coordinates, which can be specified within the robot program. Thus, a robot program can contain commands with the content “linear move from current coordinate to coordinate [x1, x2, x3, o1, o2, o3] with speed [z]”, “linear move from current coordinate to current coordinate+delta [x1, x2, x3, o1, o2, o3] with speed [z] or “circle around coordinate [x1, x2, x3] in plane [y1, y2, y3], start angle [a], end angle [b]”. The robot controller calculates the belonging control signals for the different motors, so that the tip of the robot manipulator executes the desired motion. Two or more robots can be controlled by a common robot controller.
The programming of a robot can be a time consuming task. Since each robot manufacturer can provide a different programming language for their robots, the programming effort can also increase if different kinds of robots are installed within the same production line of a manufacturing plant. Systems are known, which can allow the commanding of a robot by PLC. Such systems are described, for example, in patent applications PCT/EP2011/000243 and PCT/EP2011/000244.
Within the known art, the movement operation of the robot respective to the manipulator can be in the direction of the programmed movement path respective of its movement segments. Due to the sequentially linkage of the function blocks, a backwards motion may not be possible. This functionality can be used in some cases, for example after an emergency stop of a robot, where the robot has left the programmed movement path and stopped at a stop position on or outside the movement path. For resuming the robot program, the robot respectively, the tool center point of the robot arm can be moved back from the stop position on or near the programmed path to at least the point of interruption, which can be located on the movement path. Moreover, a movement backwards along one or more movement segments of the programmed movement path can be desirable before resuming the program execution. Also during the manual teaching of a robot program using PLC such a backward movement can be used.